from flask import current_app
from flask import g
from flask import session

from info.models import User


def index_filter(index):
    if index == 0:
        return 'first'
    elif index == 1:
        return 'second'
    elif index == 2:
        return 'third'
    else:
        return ''


# 使用装饰其封装这段代码

# 装饰器 :本质函数闭包 内部函数可以使用外部函数的参数  作用:不修改代码的情况下添加新的功能
# import functools

def login_required(f):
    # @functools
    def wrapper(*args, **kwargs):
        user_id = session.get('user_id')
        user = None
        if user_id:
            try:
                # 空值代表未登录
                user = User.query.get(user_id)
                # print('user', user)
            except Exception as e:
                current_app.logger.error(e)
                # flask 内置对象g 在请求过程中存在 和session requeest一样 请求后结束
                # 用来临时存储数据
        g.user = user
        return f(*args,**kwargs)
    wrapper.__name__ = f.__name__
    # 这时候f(*args,kwargs) = login_required(f)
    return wrapper




